home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PsL Monthly 1993 December
/
PSL Monthly Shareware CD-ROM (December 1993).iso
/
prgmming
/
dos
/
basic
/
pbtool.exe
/
PBTOOL.DOC
< prev
next >
Wrap
Text File
|
1992-04-20
|
71KB
|
1,296 lines
PBTOOL.DOC Monday, April 20, 1992 10:23 am Page 1
PBTOOL.DOC
╓──────────┐ ╓─────────┐ ╓──────────┐ ╓─────────┐ ╓─────────┐ ╓───┐
║ │ ║ │ ║ │ ║ │ ║ │ ║ │
║ ╓──┐ │ ║ ╓─┐ │ ║ │ ║ │ ║ │ ║ │
║ ║ │ │ ║ ║ │ │ ╚═══╗ ┌──┘ ║ ╓───┐ │ ║ ╓───┐ │ ║ │
║ ╚══╛ │ ║ ╚═╛ │ ║ │ ║ ║ │ │ ║ ║ │ │ ║ │
║ │ ║ ┌─┘ ║ │ ║ ║ │ │ ║ ║ │ │ ║ │
║ ┌──────┘ ║ └─┐ ║ │ ║ ║ │ │ ║ ║ │ │ ║ │
║ │ ║ ╓──┐ │ ║ │ ║ ╚═══╛ │ ║ ╚═══╛ │ ║ │
║ │ ║ ║ │ │ ║ │ ║ │ ║ │ ║ └────┐
║ │ ║ ╚══╛ │ ║ │ ║ │ ║ │ ║ │
║ │ ║ │ ║ │ ║ │ ║ │ ║ │
╚═══╛ ╚═════════╛ ╚═══╛ ╚═════════╛ ╚═════════╛ ╚════════╛
version 1.02
PowerBasic source code for beginner and intermediate level programmers.
A. KELLETT
ATTN: SHAREWARE
ROUTE ONE BOX 430B
SUMMERVILLE, GA 30747-9801
This manual and all other files on this disk, both source code, and
executable files, unless stated otherwise, are Copyright 1991 by A.
Kellett and may be used only as defined by the following license.
LICENSING INFORMATION:
The user is granted a 30 day trial period to evaluate this software.
If the user continues to use any part of this software after the
30 day period has expired, the user must complete the registration
form and send it with the required fee to the address listed on the
registration form. The registered user may include the source code
in their own programs and distribute them as they wish but only
in an executable ( .EXE ) format. This software is NOT PUBLIC DOMAIN
or free! Try it out to see if you like it, and if useful then you
must register. If there are not enough registrations to warrant my
time and energy, then I will continue to develop software for my
own use but it will NOT be distributed. This software may be copied
and given to others as long as there is no charge, none of the
original files are altered, and ALL files are distributed (see
Filelist). BBS operators and shareware distributors may distribute
this product as long as none of the original files are altered, all
files are distributed, and they do not charge a fee exceeding
$15.00 U.S. -- if you have questions or comments, please write.
***************************** DISCLAIMER ******************************
PBTOOL IS LICENSED "AS-IS". A. KELLETT MAKES NO WARRANTIES, EITHER
EXPRESSED OR IMPLIED, WITH RESPECT TO THIS SOFTWARE, ITS QUALITY,
PERFORMANCE, MERCHANTABILITY, OR FITNESS FOR ANY PARTICULAR PURPOSE.
PBTOOL.DOC Monday, April 20, 1992 10:23 am Page 2
IN PARTICULAR, IT IS NOT GUARANTEED TO PREVENT OR DETECT DAMAGE TO YOUR
DATA OR PROGRAMS. IN NO EVENT SHALL A. KELLETT BE LIABLE FOR ANY
CLAIMS FOR LOST PROFITS OR ANY DAMAGE, INCLUDING, BUT NOT LIMITED TO,
SPECIAL, INCIDENTAL, CONSEQUENTIAL OR OTHER DAMAGE. SOME STATES DO
NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL
DAMAGES, SO THE ABOVE LIMITATION OR EXCLUSION MAY NOT APPLY TO YOU.
IN NO CASE SHALL A. KELLETTs' LIABILITY EXCEED THE LICENSE FEES PAID
FOR THE RIGHT TO USE THE LICENSED SOFTWARE. THE LICENSE AGREEMENT AND
WARRANTY SHALL BE CONSTRUED, INTERPRETED AND GOVERNED BY THE LAWS OF
THE STATE OF GEORGIA.
***************************** DISCLAIMER ******************************
With that done, let me say that I have carefully tested this software
on a variety of hardware, including 8088, 80286, and 80386 equipped
PCs from several different manufacturers. I cannot guarantee
compatability with all hardware on the market. If you have specific
problems, please send your questions to me along with a self-
addressed, stamped envelope.
T A B L E O F C O N T E N T S
Introduction......................................04
Credits...........................................05
Registration information..........................05-06
Installation......................................06
File Listing......................................07-09
Individual file Descriptions
2DIR.EXE.......................................09
AREACD92.EXE...................................09
BREAK.INC......................................09
CALENDAR.EXE...................................09
CHARS.INC......................................09
CLEAR.BAS......................................10
COLORS.BAS.....................................10
COLORS.INC.....................................10
CONVERT.BAS....................................10
CONVERT2.BAS...................................10
CRT25.COM......................................10
DAYOWEEK.BAS...................................10
DAYSTWEN.BAS...................................10
DAYTER.BAS.....................................11
DBASE.TXT......................................11
EGA43.COM......................................11
FASTKYBD.BAS...................................11
FILEWIP1.BAS...................................11
FILEWIPE.BAS...................................11
FILEXIST.BAS...................................11
FREESPC.BAS....................................11
PBTOOL.DOC Monday, April 20, 1992 10:23 am Page 3
FREEMEM.BAS....................................12
GETCHAR.INC....................................12
GETDRIVE.BAS...................................12
GETKEY.BAS.....................................12
GET_KEY.BAT....................................12
GRAPHDEM.EXE...................................12
HEADER.BAS.....................................12
HOUR_MIN.COM...................................12
IAMGONE.BAS....................................12
ISLEAP.BAS.....................................13
JULIAN.BAS.....................................13
KEY.COM........................................13
KEYS.INC.......................................13
KEYWORDS.TXT...................................13
LABELS.BAS.....................................13
LITEBAR.BAS....................................13
LITEBAR2.BAS...................................13
LOWER.BAS......................................14
MENUBAR.BAS....................................14
MENUBAR2.BAS...................................14
MSGLINE.BAS....................................14
NEWS.EXE.......................................14
NUMBERS.INC....................................14
PBATTRIB.EXE...................................14
PBCOPY.BAS.....................................15
PBLIB.BAS......................................15
PBSEARCH.BAS...................................15
PBSPLIT.EXE....................................15
PBTOGGLE.BAS...................................15
PBVIEWER.BAS...................................15
PDEBUG.BAT.....................................16
PRINTDBF.BAS...................................16
PX.BAT.........................................16
RANDOM.BAS.....................................16
READDBF.BAS....................................16
READGIF.BAS....................................16
REALPROG.TXT...................................16
REDNECK.EXE....................................17
REGNAMES.INC...................................17
SCREEN.DAT.....................................17
SETDRIVE.BAS...................................17
SMSORT.BAS.....................................17
SNOW.BAS.......................................17
STARS.BAS......................................17
STRIPPER.BAS...................................17
TACHBAR.BAS....................................17
TIMER.BAS......................................17
TOUCH.EXE......................................17
TOUCHIT.BAS....................................18
TRACKER.BAS....................................18
PBTOOL.DOC Monday, April 20, 1992 10:23 am Page 4
UPPER.BAS......................................18
VALIDATE.BAS...................................18
VGA28.COM......................................18
VGA50.COM......................................18
WAIT.BAS.......................................19
YESNO.COM......................................19
YESNO2.COM.....................................19
Notes for Beginning programmers...................19-21
Notes to TurboBasic users.........................21-22
Notes to QuickBasic users.........................22
Release/Version History...........................22-23
Addresses.........................................23-24
Personal..........................................24
INTRODUCTION
The following products are trademarks of their respective owners:
DBASE/.DBF -- Ashton-Tate (now Borland International)
GIF -- GIF and Graphics Interchange Format are
copyrighted by CompuServe
PKLITE/PKZIP -- PKWare
PowerBasic -- Robert Zale ( dist. by Spectra Publishing )
Qedit -- Semware ( Sammy Mitchell ) a SUPER editor !
QuickBasic -- Microsoft Corporation
Turbo Assembler -- Borland International
Turbo Basic -- Borland International
What is PBTOOLs?
I have used TurboBasic since 1988 and PowerBasic since its first
release. Both are very good compilers for creating professional
quality software in the BASIC language. Over time I found myself
using, and sometimes recreating, the same routines in a variety of
situations. In the mainframe world, we would create a library of
routines which could easily be incorporated into any program(s)
needing that particular function. Once the code was debugged and
placed into the library, it was treated as a "black-box" and simply
plugged into a program wherever needed. As I wrote more and more
code, I began looking for a similar library for PowerBasic. There
were several high quality ones for QuickBasic, but the differences
between the two versions of BASIC prevented me from trying them out.
[ Note to QuickBasic users: I am not slinging mud at QuickBasic, it
is certainly a very fine product. I prefer PowerBasic because of
some features it has that QuickBasic either does not have or has
implemented in a way I do not like. Also, QuickBasic has some
features I would like to see in PowerBasic. ] Finally I began writing
PBTOOL.DOC Monday, April 20, 1992 10:23 am Page 5
and testing routines to place in my own PowerBasic "library". The
routines must be: 1) reliable, 2) generic enough to be usable in more
than one place, and 3) clearly coded so that other programmers can
understand what is happening. A friend saw some programs
incorporating many library features and was impressed to find it had
been written in PowerBasic ( he assumed it was written in C ). Now
you have the results of my work, and of course I will keep updating
and adding to it as time, need, and requests pour in.
If you have comments, gripes, or questions please write. Registered
users will get first priority, if you enclose a self-addressed stamped
envelope you will get second priority, everyone else will get whatever
priority is left over ( remember I'm not independently wealthy so
please try the self-addressed stamped envelope first ). DO NOT CALL!
At this time I do not have a business phone and do not plan to provide
support via a BBS. If there are enough registered users who are
interested, BBS support would certainly be considered. I will not
know if you like or dislike this software unless you write.
CREDITS
I have never seen any software whose design was not influenced by
more than one person (ie teachers, etc). SPECIAL THANKS goes to
my wife and three kids who put up with my EXTRA long hours (for
several years) spent over a hot keyboard. My wife even bought my
first computer and got me started! To Howard H. and Mike P. for
all those strange ideas of mine you stifled and the better ones you
suggested/encouraged, you both get a GOLD STAR to show your wives.
To the rest of my family, former teachers ( J.L. and E.P.), and
coworkers over the years: who knows how in the world you put up
with me but it was lots of fun. Extra special thanks to those
who register and write with suggestions for improvement. I have
learned a great deal from many articles and programs written by
Ethan Winer and Bruce Tonkin -- long may their editors wave. ALL
documentation, source code etc., was produced using QEDIT by
Sammy Mitchell -- if you want a fine editor that can be test-
driven as shareware, try QEDIT today (see addresses at end). Of
course, without Bob Zale, I might have drifted towards some really
nerdy language (pick whichever one you think fits that description).
REGISTRATION INFORMATION
What do you get for registering PBTOOLs?
Undying gratitude is nice, but it doesn't go very far. If you do
register, you will get the next major release when available (be
sure to put the number of the version you've got on the registration
form when you send it to me), source code for the few files which
are distributed as .EXEs (KEY.COM is public domain, TOUCH.EXE was
PBTOOL.DOC Monday, April 20, 1992 10:23 am Page 6
written in C but I'll include the source to it), and you'll be
able to write to gripe/suggest/comment and get a reply. Of course
registered users will be able to buy the newest version as they
come off the assembly line at greatly discounted prices. To print
out the registration form, do one of the following at a DOS prompt:
TYPE REGISTER.TXT > PRN
or
COPY REGISTER.TXT LPT1:
For other licensing information or for customized code, please
send a letter on your company letterhead with as many details
as possible.
To print out this documentation file do one of the following at a
DOS prompt:
TYPE PBTOOL.DOC > PRN
or
COPY PBTOOL.DOC LPT1:
This documentation file is spaced to provide no more than 60 lines
per page, and a minimum one-half inch left margin (great for hole
punching for binders/notebooks).
INSTALLATION
If the distributor you received this disk from has any special
installation instructions, please disregard the following ones.
PBTOOLs requires no special installation. First you should
create a directory on your work drive:
MKDIR C:\BASIC\PBTOOL
This will create a subdirectory named PBTOOL within your BASIC
subdirectory on the C drive. Then copy all the files from the
original disk:
COPY A:*.* C:\BASIC\PBTOOL\*.*
Substitute B: for A: if you are installing from drive B. Be
sure to alter your PATH statement in your AUTOEXEC.BAT file
to include the new subdirectory (if you create one). You may
wish to simply COPY all the PBTOOLs files into your regular
BASIC subdirectory:
COPY A:*.* C:\PBASIC\*.*
Be sure to BACK UP all your work first in case some of your own
files are overwritten (see File Listing to be sure the file
names are not the same as some of your own file names). If
you have any questions about creating a directory or changing
your PATH statement, please refer to the DOS manual that
came with your computer. After you finish installing, <PLEASE>
put your original disk in a safe place!
PBTOOL.DOC Monday, April 20, 1992 10:23 am Page 7
FILE LISTING
The following is a listing of the files included on this disk
along with a brief function summary. See the documentation for
each individual program for more detail.
FILE function
(Note: P beside the file name designates for PowerBasic only)
REGISTER.TXT the registration form to send in
PBTOOL.DOC documentation file, you're reading it here...
README.1ST latest news not in PBTOOL.DOC (included if needed)
CLEAR.BAS clears the screen from: left to right, right to left
top to bottom, bottom to top,
middle to top and bottom,
top and bottom to middle,
outside (sides) to middle,
middle to outside (sides)
COLORS.BAS displays colors and values needed in COLOR statement
CONVERT.BAS convert a single character within a file to another char
CONVERT2.BAS capitalize first letter of each word within a file
DAYOWEEK.BAS find day of the week using Zeller's Congruence
DAYSTWEN.BAS days between two dates
DAYTER.BAS display day, date, and time in normal format
FASTKYBD.BAS outputs a .COM file, fast keyboard rate for ATs & PS/2s
FILEXIST.BAS test whether a file currently exists or not
FILEWIP1.BAS wipe a file by overwriting - better for security
FILEWIPE.BAS " " " - much faster
P FREESPC.BAS amount of free disk space available
FREEMEM.BAS amount of free memory available
GETDRIVE.BAS gets the drive currently used
P GETKEY.BAS allows entering keys in a .BAT file
HEADER.BAS header to include at top of all your source code
IAMGONE.BAS displays message on screen while you're not in
ISLEAP.BAS tests for leap years
JULIAN.BAS converts MM-DD-YY format into YY and DDD format
LABELS.BAS prints on 15/16" X 3.5" labels
LITEBAR.BAS user friendly pick-a-choice menu
LOWER.BAS converts a text file to all lowercase
MENUBAR.BAS user friendly top-of-screen menu bar
MENUBAR2.BAS user friendly top-of-screen menu bar w/explanatory line
MSGLINE.BAS ticker-tape scrolling message line
PBCOPY.BAS file copying program
PBLIB.BAS simple, effective (small) routines to plug in
PBSEARCH.BAS search file for specified characters
P PBTOGGLE.BAS toggles status of "locking" keys: caps/num/scroll
PBVIEWER.BAS view contents of any file
PRINTDBF.BAS print file structure of DBASE .DBF file
RANDOM.BAS generates a sequence of pseudo-random numbers
READDBF.BAS display file structure of DBASE .DBF file
PBTOOL.DOC Monday, April 20, 1992 10:23 am Page 8
SETDRIVE.BAS changes current drive to user specified drive
SMSORT.BAS Shell Metzner sort, very useful in TurboBasic
SNOW.BAS displays "SNOW", prevents screen burn in
STARS.BAS simple graphics and not-so-subtle advertisement
STRIPPER.BAS strips specified characters from file, writes new file
TACHBAR.BAS display progressive "tachometer" bar - keep user informed
TIMER.BAS displays the time until a key is pressed
P TOUCHIT.BAS set file time/date stamp to current time/date
TRACKER.BAS tracks date/time of boots, use in AUTOEXEC file
UPPER.BAS converts a text file to all uppercase
VALIDATE.BAS checks validity of dates
WAIT.BAS timed pause, use from DOS ( ie .BAT files )
Include files
BREAK.INC break out of most programs in loops
CHARS.INC valid characters, use with GETCHAR.BAS for demo
COLORS.INC names of colors, use instead of numbers
GETCHAR.INC filtered input, protects entry from unwanted characters
KEYS.INC defines extended keypresses for user input
NUMBERS.INC types of numeric variables and valid ranges
REGNAMES.INC named registers, use for assembler routines
Compiled programs
P 2DIR.EXE displays 2 directories side-by-side (great for compares!)
AREACD92.EXE scrolling search for area codes by state or number
CALENDAR.EXE displays a monthly calendar from 1801 - 1999
GRAPHDEM.EXE slightly random geometric screen drawing program
NEWS.EXE latest Galactic Headlines, funny for AUTOEXEC.BAT
P PBATTRIB.EXE modify file attributes
PBSPLIT.EXE split large files into manageable chunks
READGIF.EXE displays information on .GIF picture files
REDNECK.EXE Redneck aptitude test, become a grits eater
Please Note: these .EXE files are compressed using PKLite from
PKWare (see addresses at end). This creates smaller .EXE files
which load faster and offer some security from disassembly also.
I use it mainly to save disk space so everything will fit on
a single 360k floppy - highly recommended that you try this
shareware star!
Useful utilities
CRT25.COM set EGA/VGA to 25 line mode
DBASE.TXT file layout for DBASE .DBF files
EGA43.COM set EGA to 43 line mode
GET_KEY.BAT demo for GETKEY.BAS - enter choices within .BAT files
HOUR_MIN.COM displays the current time on the screen
KEY.COM used to capture keystrokes within PDEBUG.BAT and PX.BAT
KEYWORDS.TXT lists all TurboBasic and PowerBasic commands
P PDEBUG.BAT use to find the source line with a run-time error
PBTOOL.DOC Monday, April 20, 1992 10:23 am Page 9
P PX.BAT use to compile options with command-line version (PBC)
REALPROG.TXT humorous text file on "Real Programmers"
SCREEN.DAT screen to be used with PX.BAT
TOUCH.EXE used to set the time/date stamp of a file to either
the system time/date, or whatever you choose.
YESNO.COM allows entry of Y or N and sets the errorlevel w/echo
YESNO2.COM allows entry of Y or N and sets the errorlevel w/o echo
VGA28.COM set VGA to 28 line mode (my personal favorite)
VGA50.COM set VGA to 50 line mode (how large is your monitor?)
PLEASE NOTE: all the .COM programs I have written include a line
of text within the .COM file explaining what they do. You
can use TYPE YESNO.COM to see what is does. It is very
helpful for small utilities to be somewhat "self documenting".
INDIVIDUAL FILE DESCRIPTIONS
2DIR.EXE
This program displays 2 directories side by side allowing up/down
scrolling to compare the files. When entering the path for the
left and right directories, the user must enter the drive name
and the full path. C:\LOTUS\WKS is acceptible but C:\DOS\APPS\*.*
is NOT. This program currently does not contain extensive error
checking. The source code is supplied to registrants and requires
PowerBasic v2.10a or greater.
AREACD92.EXE
Displays a scrolling list of state names and the area codes for
that state. The user can toggle sorting the list either
alphabetically by state name or numerically by area code.
BREAK.INC
Allows breaking out of most programs in an endless loop. See
further notes within the source code.
CALENDAR.EXE
Displays a monthly calendar from 1801 - 1999. Correctly calculates
leap years (see ISLEAP.BAS for details). Great for planning farther
ahead than your desk calendar or to find out what day someone was
born on. Source code sent to registrants.
CHARS.INC
Contains valid characters used by the GETCHAR.BAS demo. Used for
filtered input (including and/or excluding characters from the
user input). Can be used to help "bullet-proof" your code so
user mistakes won't crash or corrupt your program. Also see
GETCHAR.INC for further notes and usage.
PBTOOL.DOC Monday, April 20, 1992 10:23 am Page 10
CLEAR.BAS
Clears the screen from: left to right, right to left, top to bottom,
bottom to top, middle to top & bottom, top & bottom to middle,
outside to middle (sides), middle to outside (sides). Each of the
above screen clearing routines are demonstrated by filling the
screen with a single letter, then clearing the screen. Can liven
up the user interface
COLORS.BAS
Displays 15 foreground and background color combinations and the
values needed for the COLOR statement. Useful for color monitor
programmers and indispensable for programs which MAY be used on
monochrome/paper white monitors (ie like the one I use for
development at home, unlike the VGA color monitor I have at work).
COLORS.INC
Allows using the names of colors instead of numbers. Isn't
COLOR GREEN%, BLUE% much easier to understand than
COLOR 2,1 when trying to debug or modify your code?
CONVERT.BAS
Allows conversion of a single character within a file to another
character (outputs to a new user-specified file). For example,
you could use it to convert all TABs in a file into a space.
Now works on "chunks" of data - much faster for even large files.
CONVERT2.BAS
Converts a ASCII text file into upper/lowercase with the first
letter of each word capitalized. Now works on "chunks" of data
at a time - much faster for even larger files.
CRT25.COM
Sets EGA/VGA video systems to standard 25 lines per screen. Use
in conjunction with VGA28.COM, EGA43.COM, and VGA50.COM programs.
Turbo Assembler source provided to registrants.
DAYOWEEK
This program returns the day-name of the week given the date.
The idea from this code came from an old Commodore 64 BASIC
program many years ago (I never look a gift horse in the mouth).
A recent article in Dr. Dobb's Journal (Feb. 1991 p.148-149)
by Al Stevens caused me to give it a closer look. His article
is the first I've seen that lead me to actually understand it.
DAYSTWEN.BAS
Gives the number of days between two user supplied dates. The
two dates must be valid. Students in one of my advanced COBOL
classes had real trouble with this problem, so I simply coded
it in PowerBasic as an illustration. Commonly used in many
business applications.
PBTOOL.DOC Monday, April 20, 1992 10:23 am Page 11
DAYTER.BAS
Displays the day, date, and time from the system clock. I use
this in my AUTOEXEC.BAT to be sure my clock is working correctly.
DBASE.TXT
This text file gives detail information on the file layout of
DBASE .DBF database files. This information could be used to
create your own programs which can access or store information
in .DBF formatted files. See also READDBF and PRINTDBF.
EGA43.COM
Sets EGA video systems to 43 line mode. Use CRT25 to reset it for
25 line mode (or use MODE CO80 at the DOS prompt). Do not try this
on non-EGA systems. Turbo Assembler source code will be supplied
to registrants.
FASTKYBD.BAS
Originally wrote the small .COM file in Turbo Assembler. Combined
that with the basic function of those .COM writing Basic programs
which used to be so popular in PC Magazine (my code is nothing like
theirs, however). Produces a .COM file which will set the keyboard
delay and repeat rates for ATs and PS/2s or compatibles. Will NOT
work on 8088/8086 machines. Not memory resident.
FILEXIST.BAS
Tests whether a user specified file currently exists or not. Code
is given for both TurboBasic and PowerBasic v2.10a. The Turbo code
will fail if the file exists with a legth of 0, or will bomb with
an error if the disk is write protected. This same code is used
throughout many other PBTOOL programs.
FILEWIP1.BAS
Wipes a file by overwriting. Basic idea came from some of Norton's
programs. Program illustrates the power of BINARY mode (which I
find very few people using with Basic - their loss) for putting
bytes anywhere in a file they are needed. If you have very high
security needs, this is not recommended.
FILEWIPE.BAS
Big brother to FILEWIP1.BAS, this one works in larger chunks of
bytes. MANY times faster and preferred.
FREESPC.BAS
Returns the number of available space on a specified disk(ette)
in bytes. Useful for any program writing to a disk file which
may take up all available room (re: ANY program outputting to disk).
PBTOOL.DOC Monday, April 20, 1992 10:23 am Page 12
FREEMEM.BAS
Reports the amount of free memory available. This comes in very
handy for testing when creating tables/arrays over 64K in size.
GETCHAR.INC
Include file which allows entry ONLY of specified characters
including backspace, screen location, number of characters to
accept, etc. See CHARS.INC for notes and GETCHAR.BAS for a
demo.
GETDRIVE.BAS
Returns the current disk drive being used. Good for programs
building a PATH to output a file or displaying the drive letter
for the user.
GETKEY.BAS
Allows entering keys from within a .BAT file and sets the
errorlevel to correspond with the key that was pressed.
See GET_KEY.BAT for an example. Used almost identically
to the public domain KEY.COM program included. For
PowerBasic only (included is both source and .EXE file)
GET_KEY.BAT
This .BAT file demonstrates how to use the GETKEY.BAS program.
Compile GETKEY.BAS first then run this batch file.
GRAPHDEM.EXE
Graphics demo, draws slightly different screens in every
cycle. Should run on any CGA/EGA/VGA video system.
Pressing any key while running will exit. PowerBasic
source supplied to registrants - can be easily used for
store demos or in the lobby of a business.
HEADER.BAS
Insert this at the top of your own programs for internal
documentation purposes. If your editor has an insert-block
mode, use it on this. Of course, put your own name/compiler
instead of mine in it and save it to disk.
HOUR_MIN.COM
Displays the current time on the screen (and less than 1500
bytes to boot). Good for your AUTOEXEC.BAT so you can be
sure the clock is accurate, or compile DAYTER.BAS for the
time, date, and day of the week with BASIC source code.
The Turbo Assembler source code is provided to registrants.
IAMGONE.BAS
Displays a message on the screen while you are out of the
office. Pressing any key exits the program. The user
is prompted to enter an appropriate message.
PBTOOL.DOC Monday, April 20, 1992 10:23 am Page 13
ISLEAP.BAS
Tests a given four digit year to see if it is a leap year.
If your program allows users to input a date, or you want
to write a calendar program, this is a must. Logic for
the test came from a long, dry passage in an ancient
ANSI COBOL book.
JULIAN.BAS
Converts standard MMDDYY format date into a Julianized date
(YYDDD format). Once it is converted, calculated the number
of days between dates is simple. You might prefer to keep
dates in your programs stored in this internal format
(maybe using four digit years - YYYYDDD).
KEY.COM
KEY.COM is a public domain program - you can do what you want
with it concerning usage or distribution. Use it within .BAT
files to branch based on user keypresses - see PX.BAT for a
sample. Also see GETKEY.BAS for a very similar program.
KEYS.INC
Allows using named keypresses (such as F1$, PGDOWN$) within
your programs making coding and debugging easier.
KEYWORDS.TXT
Lists all TurboBasic and PowerBasic statements, functions,
and metastatements by version. Useful for converting programs
from one to the other or for writing your own PowerBasic
equivalents to use with TurboBasic.
LABELS.BAS
Problem: someone needed to print several hundred return
address labels and the expensive customer addressing system
they had would not handle it. The quick-and-dirty version
of this program was churning out their labels in less than
thirty minutes! This program can be easily modified to
handle other label sizes. HINT: when testing, print on
plain paper and hold your labels next to that to check
alignment (most labels aren't cheap).
LITEBAR.BAS
Allows user-friendly menu with pick-a-choice by either selecting
the identifying letter or scrolling a highlight bar up and down
the menu. Includes example code to get you started.
LITEBAR2.BAS
Another user-friendly litebar menu with colored bar instead of
reverse video bar.
PBTOOL.DOC Monday, April 20, 1992 10:23 am Page 14
LOWER.BAS
Converts a text file to all lowercase. Reads and writes bytes
in "buffers" up to 32,000 bytes at a time. Much faster than
single-byte reads/writes. Also see UPPER.BAS for opposite
type code (only one line of code changed!).
MENUBAR.BAS
A user-friendly across-the-screen menu bar. Can be easily
positioned to any other line (ie bottom line is good too).
Select choice by using either left/right arrow key or
entering the identifying number. Includes example code to
get you started.
MENUBAR2.BAS
Another user-friendly across-the-screen menu bar with an
explanatory line below the menu bar. Similar to what some
of the big spreadsheet companies use (but don't accuse me of
that look-and-feel nonsense, please). Includes example code
to get you started.
MSGLINE.BAS
Displays a scrolling message across the screen. Good for a
message when you're out of the office or as an advertising
aid in stores.
NEWS.EXE
Display top headlines from the Galactic Inquisitor, especially
useful for the AUTOEXEC.BAT file. Source supplied to registrants
and you can easily change it to suit yourself. Once had a similar
program written in COMAL (yes, it's spelled correctly) for my
old Commodore. Great language, but interpreted and only left
about 12K of memory free -- and this on a 64K machine! The
randomizer routine should prove very useful for any games of
chance. Source code goes straight to all registrants.
NUMBERS.INC
Lists type of numeric variables available in both TurboBasic
and PowerBasic. TurboBasic supplies almost any you will need
but the 64 bit precision does come in handy sometimes.
PBATTRIB.EXE
Easiest way I've seen to display or change a files attributes.
Beats loading up my super-duper utility software and you don't
have to remember the switches for the DOS version. Wished I
had written this years before. PowerBasic v2.10a (or greater)
source is supplied to registrants.
PBTOOL.DOC Monday, April 20, 1992 10:23 am Page 15
PBCOPY.BAS
Simple file copy program. Could be included in your own
installation software. Roughly 30% slower than the one that
comes with DOS. You could also "filter" the bytes as they
stream through your program.
PBLIB.BAS
A library of short routines you may find useful within your
own programs. Use Cut/Paste functions of your editor to
pull into your own programs as needed. Simple and effective.
PBSEARCH.BAS
Searches a specified file for the FIRST occurence of the
user specified characters.
PBSPLIT.EXE
Splits large files into manageable chunks. Want to put a 2MB
file on 360K floppies - this will do it. To recombine type:
COPY /B FILE001 + FILE002 + FILE003 BIGFILE.XXX
FILE001 thru FILE003 are the split files and BIGFILE.XXX is
the recombined file. Thought up the original idea some time
ago (and REALLY needed it) but tried using a public domain
version. It was unreliable so I said,"Heck, let's throw a
good compiler and too much spare time on the problem."
The PowerBasic source is gladly supplied to registrants.
Code is not really that complicated, you can alter for greater
performance or whatever you need.
PBTOGGLE.BAS
Toggles the "locking" keys (ie Caps Lock, Num Lock, Scroll Lock).
Very useful in a AUTOEXEC.BAT file. Changes the status of the
specified key to its alternative status: if caps lock is on then
it will set the caps lock key off. Some clones will not update
the status lights on the keyboard EVEN when the actual status
changes - this means those tiny lights may be out of sync with
reality. Some examples:
PBTOGGLE CS toggles Caps Lock and Scroll Lock
PBTOGGLE N toggles only the Num Lock
PBTOGGLE NCS toggles status of all three keys
Except for code to read command-line, can be modified to work
with TurboBasic (ie hard code the status to be changed).
PBVIEWER.BAS
Allows viewing the contents of a file. Nothing as comprehensive
as LIST (Vernon Buerg) but rough version helped me debug a
mainframe-to-PC file transfer in a much shorter time frame.
Another good demonstration on the extraordinary values of the
BINARY file mode.
PBTOOL.DOC Monday, April 20, 1992 10:23 am Page 16
PDEBUG.BAT
A simple .BAT file to automate finding bugs when you receive
an error/program counter message when running a PowerBasic
compiled program. Use PDEBUG 1234 MYPROG.BAS where the
source file name is MYPROG.BAS and 1234 is the program
counter the error was reported at. Change to suit yourself
if you'd like.
PRINTDBF.BAS
Reads and prints the structure of a DBASE .DBF database file.
Really handy for anyone who designs and modifies DBASE files
on a regular basis.
PX.BAT
A simple .BAT file to automate some options when compiling
with PBC, the PowerBasic command-line compiler. Uses KEY.COM
to capture user keypresses and provide branching capabilities
via ERRORLEVEL. You can easily add more options or change
the ones I have provided. It saves me from remembering those
darned switches and helps speed up the edit/compile cycle.
The menu screen itself is SCREEN.DAT and is displayed by
the .BAT file with a simple TYPE command. If you add other
options, you will want to add to or change SCREEN.DAT to
reflect those changes.
RANDOM.BAS
Generates a sequence of pseudo-random numbers. I will leave it
to the Computer Science majors to calculate the actual randomness
it offers.
READGIF.EXE
Will read and display information on .GIF picture files on the A:,
B:, or the current default drive. Displays file name, size (both
bytes and resolution), and number of colors used. Example:
ALBERT.GIF 17,536 320x200x32
Source code gladly sent to registrants.
READDBF.BAS
Reads and displays information from a DBASE .DBF file. Very useful
for anyone who works with DBASE formatted database files.
REALPROG.TXT
All about "Real Programmers", this text file was taken from
my memory and others. Original source was (I think) a UNIVAC
mainframe text file - several friends saw it too and helped
me recollect it. Also a tribute to the best darned System
Programmer (and a very good instructor) I've met. To print
a hardcopy (at the DOS prompt) type:
TYPE REALPROG.TXT > PRN or
COPY REALPROG.TXT LPT1:
PBTOOL.DOC Monday, April 20, 1992 10:23 am Page 17
REDNECK.EXE
If you ever wanted to test your abilities as a redneck, here it
the measuring tool. Very popular at the office and on a BBS.
Don't get offended at your score or some of the questions.
The Beta test involved lots of pickup truck drivers and BBQ
eaters. Source gladly sent to registrants.
REGNAMES.INC
Allows using register names instead of numbers. Similar code was
given in the TurboBasic manual, PC Magazine, and several other
sources. Same benefits as COLORS.INC.
SETDRIVE.BAS
Changes the current drive to a user specified one. Useful
for a wide variety of applications.
SMSORT.BAS
Shell-Metzner sort demo, especially useful for TurboBasic users.
For data in nearly sorted order, is reputed to be faster than
the QuickSort algorithm. Adapted from an old 8-bit, interpreted
Basic version while I was first learning TurboBasic.
SNOW.BAS
If you need a simple screen blanker and aren't running that
Microsoft pseudo-operating system, this may be the ticket.
Besides, we don't get much of the real snow in the South.
Doesn't look good on sub 10MHz machines.
STARS.BAS
Simple display of "stars" against an advertising foreground.
An example of text mode graphics, random positioning (using
an array) and color cycling. Try modifying to make the
sky look more realistic. Potentially a good screen blanker.
STRIPPER.BAS
Strips specified characters out of a file, writing a new
output file. Especially useful for stripping out ASCII
values over 128 to make plain vanilla text files.
TACHBAR.BAS
Displays a progressive "tachometer" bar. Easily incorporated
into your programs to keep the user informed that something is
actually happening and when it should probably be finished.
TOUCH.EXE
Alters the time and date stamp of the user specified file.
You can supply the file name on the command-line (ie
TOUCH MYFILE.BAS) and MYFILE.BAS will have its time/date
stamp set to the current time and date as reported by
the PC clock. Or you can simply type TOUCH and it
PBTOOL.DOC Monday, April 20, 1992 10:23 am Page 18
will prompt you for the file name, the date, and the
time you want to set for that file. If any of the
parameters are NOT within a valid range (ie month = 13)
it will not alter the time/date stamp of that file.
There are NO extensive error checks on user input -- use
this myself and hope it will be useful to you. The
PowerC source code is supplied to registrants, and there
<may> be a PowerBasic version somewhere in the future.
TOUCHIT.BAS
Alters the time and date stamp of the user specified file to
the current time and date as reported by the system clock.
TIMER.BAS
Displays time at random locations on the screen until a
key is pressed. Great for limiting phone calls or as an
alternative screen blanker to SNOW.BAS.
TRACKER.BAS
Saves the current time/date in a file on disk. Put in the
AUTOEXEC.BAT file to track when the computer has been rebooted.
Simple but effective way to track reboots, anyone very familiar
with the AUTOEXEC.BAT file can get around this.
UPPER.BAS
Converts a text file to all uppercase. Reads and writes bytes
in "buffers" up to 32,000 bytes at a time. Much faster than
single-byte reads/writes. Also see LOWER.BAS for opposite
type code (only one line of code changed!).
VALIDATE.BAS
Checks the validity of a user specified date. Combine with
ISLEAP.BAS to simplify checking of user entered dates.
VGA28.COM
Sets VGA video systems to 28 line mode (my favorite). Use
CRT25 to return to 25 line mode (or MODE CO80 at the DOS
prompt). Do not use on non-VGA systems, no error checks!
Turbo Assembler source code will be provided to registrants.
VGA50.COM
Sets VGA video systems to 50 line mode (and it's tiny, too).
Use CRT25 to reset to 25 line mode (or MODE CO80 at the DOS
prompt). Do not use on non-VGA systems, no error checks!
Turbo Assembler source code will be provided to registrants.
PBTOOL.DOC Monday, April 20, 1992 10:23 am Page 19
WAIT.BAS
A timed pause and demonstrates simple command-line parameters.
I use it in my AUTOEXEC.BAT just after my anti-virus software.
The Virus/No-Virus results are displayed during the boot and
this program pauses just long enough so I can read the good or
bad news.
YESNO.COM/YESNO2.COM
Both of these .COM programs wait for the user to press either
Y, y, N, or n and returns an errorlevel to DOS of 1 for Y or
0 for N. Use within a .BAT file for easy branching such as:
echo *** Please press Y for yes or N for no ***
YESNO.COM
if errorlevel 1 goto yes
if errorlevel 0 goto no
:yes
echo You answered yes
goto quit
:no
echo You answered no
:quit
echo The End
YESNO.COM displays the key that the user pressed while
YESNO2.COM does not echo the user key press. The user must
press one of the four valid keys to exit the program. Registrants
receive the Turbo Assembler source code to both these.
NOTES FOR BEGINNING PROGRAMMERS
Modern BASIC compilers have enough features to write industrial-
strength programs with almost all the benefits of "professional
languages" such as C and they are often easier to write and debug.
The C language certainly has its place -- most commercial software
on the market today is written in C with a little Assembler for
speed where absolutely necessary. [Andy's rule of computer language
bigotry: No language has the best of everything!]
There is not enough room here for a complete tutorial on how to
program in BASIC. One of the best books I've seen and used (for
teaching Beginning/Intermediate BASIC) is "BASIC A Structured
Approach" by Clark and Drum (2nd Edition, South-Western Publishing
Company). There are also some good ones specific to TurboBasic, look
around before you buy and remember that the manuals that come with
TurboBasic and PowerBasic are a good place to start.
There are some points I feel are important when writing your
code, mainly because these help you write BETTER code (easier to
debug, maintain, modify, etc).
1. Always use variable names long enough to look like what they
stand for. I use I, J, K for simple loops - usually integers
because the loop runs faster. I can understand what TABLE.SIZE&
means during the heat of a debugging session much quicker than
TB&. Some people capitalize the variable names, especially in
PBTOOL.DOC Monday, April 20, 1992 10:23 am Page 20
magazines and books: MyArray$, KeyPressed$, TableSize%. It does
look slightly better to me but I can type all capital letters
much quicker so it is a speed tradeoff.
2. Indent your code for loops, between opening and closing a file,
etc. This makes it easier for you to tell during debugging/
maintenance/modifications where actions are occuring and exactly
where they STOP occuring. Make it as easy on yourself as
possible -- as your programs grow in complexity you will need
all the help you can get!
FOR I% = 1 to TABLESIZE% | OPEN FILENAME1$ FOR BINARY AS #1
CALL ROUTINEA | GOSUB READBYTES
CALL GETUSERINPUT | GOSUB DISPLAY BYTES
INCR SPACEUSED& | CALL MYSPECIALCODE
DECR TIMEALLOTTED& | CLOSE#1
NEXT I% |
You can see EXACTLY what is occuring with these blocks of code,
and note the meaningful names chosen for the subroutines. If
you leave your code alone for any length of time, and especially
if you come back to it after writing other complicated programs,
you WILL NOT remember all the nooks and crannies without
spending some time reading through the code once again. Make it
easy on yourself, practice good coding habits!
3. Break your program into modules/blocks of code that are similar.
There are no hard and fast rules here but the more experience you
have the easier it is to judge when to split things up. Look
over the example programs provided, especially the larger ones.
Before you grab your pen to point out some of MY mistakes
(jeez, maybe there is one or two), remember that logical design
is more of an individual art than a science. If your program is
blowing away when writing a new database record, wouldn't it make
sense to check out your WRITENEWRECORD module before searching
through several thousand lines of code? Also be sure to give your
modules/subroutines good names which are long enough to mean
something to YOU during a 3 a.m. debug session.
4. Anytime you are dealing with numbers remember this: If you don't
need something after the decimal place (ie 3.5, 4.00321), use
integers. The computer can calculate those numbers much faster
than floating point (such as X!, X#, and X##). See NUMBERS.INC
for a listing of numeric data types available. There is no
reason not to use integer variables for most loops, and
subscripts for arrays/tables. Your programs will be smaller and
run anything from slightly faster to "Wow, what is that program
written in?!".
5. Study good programs which you know work correctly. Once I get
a program working correctly, anytime I need something similar I
try to use that same code or at least take a long look at it
first. Several magazines list BASIC source code as do many of
PBTOOL.DOC Monday, April 20, 1992 10:23 am Page 21
the better books on the shelves. Don't reinvent the wheel!
Make sure your best code works and use it whenever you can.
Save yourself as much coding time as possible and get your
programs built and running quicker.
6. Learn to trap bugs quickly. Good debugging techniques are
important because all programmers make bugs (besides myself,
I've worked with several very talented individuals and they all
produced bugs at some point). PowerBasic has a very good
debugger and you should go through the debugging tutorial to get
a good start on it. Writing good code to start with (and
spending lots of time thinking about it first) will do much to
stem the landslide of bugs that can develop. I wrote GETKEY.BAS
about as quickly as I could type it in, mainly because I worked
out the logic in my head during the 30 minute commute home from
work. But PLEASE don't have a wreck trying to do that.
7. Borrow good ideas from other languages. I also program in C and
Assembler occasionally because both have some advantages over
BASIC. Both do little to shield the programmer from his/her
own dumb mistakes, and Assembler bugs often lock up my machine.
String operations are so much easier in BASIC that I find it
somewhat painful to deal with tables/arrays in those other two.
But don't forget my rule of computer language bigotry!
NOTES FOR TURBOBASIC PROGRAMMERS
TurboBasic is a pretty good compiler and I moved up from plain
vanilla PC BASIC to it and never went back once I got used to the
lack of line numbers. Its debugging is very weak compared to
PowerBasic and QuickBasic above version 3. It seemed to get in
MY way less than QB did so I finally parked QB4 on the shelf.
See NUMBERS.INC for a reference on which numeric variables are
available with which compiler. I often use X&& when X& has enough
precision (I guess this is a bad habit - you be the judge). Most
of the PBTOOL code is perfectly digestible for both TurboBasic
and PowerBasic. See the summary at the beginning of the File
Listing, those few with a "P" beside them are for PowerBasic only.
Also you should look over KEYWORDS.TXT for the new stuff added to
PowerBasic that will give TB fits during compiles. Bob Zale wrote
both of these (a hum-dinger of a job too!) and if you do much
programming at all it is very much worth the bucks to upgrade to
PowerBasic. I've stuck with less than state-of-the-art several
times for economic reasons and if you can't upgrade, well, most of
PBTOOLs will run using TurboBasic. I have documented the obvious
stuff where I mainly used the advanced features of PowerBasic --
and advanced features are very hard NOT TO USE if they are right
in front of you. There are even a few things that came out in
PowerBasic v2.10a I just had to use even though it meant
alienating both Turbo AND many PowerBasic programmers. If the
equivalent code were easy, I would not be so tempted to use the
new features. Questions/Comments/Gripes, remember my address if
PBTOOL.DOC Monday, April 20, 1992 10:23 am Page 22
you're registered. I'll try to respond to unregistered folks ONLY
if you enclose a self-addressed stamped envelope (and as soon as I
get the time).
NOTES FOR QUICKBASIC PROGRAMMERS
Much of the plain code from PBTOOLs can be put through QuickBasic
from Microsoft. I put my QuickBasic v4.0 on the shelf after
comparing it for several months and don't look back. There are
tons of good books and several code libraries available for QB
fans however. Anything by Ethan Winer is worth two or more good
looks. Be sure to refer to your manual often if you want to
plunge ahead and use PBTOOL code. I don't use functions as much
as I ought to, but remember that you must specifically declare
them in QB before usage. This was an Achilles heel to me and
seemed to get in my way too often. Using small Assembler routines
seemed like a pain too. However, if you program in another
MicroSoft language, linking code from different compilers isn't
hard at all. Unless you are a professional QB coder (and even for
intermediate Turbo & PowerBasic programmers), check out BASIC
Techniques and Utilities by Ethan Winer (Ziff-Davis Press, 1991).
The writing style is very understandable and he covers a lot of
territory and there is lots of source code throughout.
RELEASE/VERSION HISTORY
1.02 - Released April 1992
Added - CLEAR.BAS several screen clearing routines
Added - DBASE.TXT format of DBF files/sample code
Added - MSGLINE.BAS scrolling billboard-type msg
Added - READGIF.EXE read info from Gif picture files
Added - PRINTDBF.BAS print file info on DBF files
Added - READDBF.BAS read info about DBASE DBF files
Added - TACHBAR.BAS display tach-style progress bar
Added - TOUCHIT.BAS set time/date stamp to current
Modified - PBLIB.BAS more useful routines
Modified - REDNECK.EXE (quick escape for your "boss")
1.01 - Released December 1991
Added - PBTOGGLE.BAS
Added - UPPER.BAS
Added - LOWER.BAS
Added - MENUBAR.BAS
Added - MENUBAR2.BAS
Added - CALENDAR.EXE
Modified - CONVERT.BAS/CONVERT2.BAS (MUCH FASTER)
Modified - COLORS.BAS (BUG FIX & TEXT/NAMES DISPLAYED)
Modified - GRAPHDEM.EXE (FIXED DUMB BUG - WOULDN'T RUN)
Modified - PBATTRIB.EXE (EASIER TO USE)
PBTOOL.DOC Monday, April 20, 1992 10:23 am Page 23
1.00 - Released October 1991
(Rewrote some code during beta testing to
compile with both TurboBasic and PowerBasic).
Look for more routines and several enhancements in release 1.03 -
quality shareware distributors should have it by mid-summer of
1992. I DO listen to user requests, write if you would like
something I do not now offer. I am currently researching GIF
and other graphics file formats and other areas of interest.
We'll see what it all leads to.
SHAREWARE I USE
Although I cannot personally guarantee you will love them, I have
found both Qedit (programmers' editor) and TELIX (full featured
telecommunications program) to be indispensible. I use both on
a daily basis (for several years) and eagerly registered them.
If you are into graphics, I think Graphics Workshop wonderful for
converting graphics file formats, cropping, shrinking, expanding,
and most anything else you might need to do with pictures. If
you need a paint program, I use Desktop Paint 256 to paint, draw,
or alter GIF/TIFF/PCX/LBM files (it requires SVGA and a mouse).
These are available from any of the larger shareware distributors
and many fine BBS across the land. Remember to support the
shareware concept by registering those products you use and trust.
ADDRESSES
A. Kellett PBTOOLs
Attn: Shareware shareware code library for
Route One Box 430B TurboBasic & PowerBasic.
Summerville, GA 30747-9801 May be adapted to QuickBasic
Borland International TurboBasic (no longer upgraded),
1800 Green Hills Road TurboDebugger (includes Turbo
P.O. Box 660001 Assembler v2.51, Turbo
Scotts Valley, CA 95067-0001 Debugger, Turbo Profiler)
PKWare, Inc. PKLite v1.12, compresses .EXE
7545 N. Port Washington Rd. files to smaller, self-running
Glendale, WI 53217 files. Also make PKZIP/PKUNZIP
which is the standard compress/
uncompress utilities by which
ALL others are compared!
Semware Qedit v2.1, a super multi-file,
4343 Shallowford Rd. multi-window editor. Easily
Suite C-3 configurable, fast, small,
Marietta, GA 30062-5003 very inexpensive!
PBTOOL.DOC Monday, April 20, 1992 10:23 am Page 24
Spectra Publishing PowerBasic v2.10, super Basic
1030D East Duane Avenue compiler, allows strings as
Sunnyvale, CA 94086 big as available memory,
fast, many options, relatively
inexpensive, network support!
PERSONAL
The author, Andy Kellett, has been using and programming personal
computers since 1983 when his wife brought one home to "keep him
busy". He has graduated from a Vocational-Technical Institute and
a two-year college, majoring in Data Processing. He has worked
with several firms on systems ranging from very small multi-user
computers to large fault-tolerant systems serving hundreds of
users. He enjoys programming in Assembler, C, dBASE, COBOL, and
especially BASIC. He has taught programming classes at a local
vocational school for over three years, both full and part-time.
He is currently employed by a local hospital as the PC Coordinator.
In his spare time he enjoys playing with his three children, calling
his wife "Honey", attending Bible classes, wearing overalls, and
living the enviable, truck-driving life of a redneck.
*** T H E E N D ***
----------------end-of-author's-documentation---------------
Software Library Information:
This disk copy provided as a service of
Public (software) Library
We are not the authors of this program, nor are we associated
with the author in any way other than as a distributor of the
program in accordance with the author's terms of distribution.
Please direct shareware payments and specific questions about
this program to the author of the program, whose name appears
elsewhere in this documentation. If you have trouble getting
in touch with the author, we will do whatever we can to help
you with your questions. All programs have been tested and do
run. To report problems, please use the form that is in the
file PROBLEM.DOC on many of our disks or in other written for-
mat with screen printouts, if possible. PsL cannot debug pro-
programs over the telephone, though we can answer questions.
Disks in the PsL are updated monthly, so if you did not get
this disk directly from the PsL, you should be aware that the
files in this set may no longer be the current versions. Also,
if you got this disk from another vendor and are having prob-
lems, be aware that some files may have become corrupted or
lost by that vendor. Get a current, working disk from PsL.
For a copy of the latest monthly software library newsletter
and a list of the 3,000+ disks in the library, call or write
Public (software) Library
P.O.Box 35705 - F
Houston, TX 77235-5705
Orders only:
1-800-2424-PSL
MC/Visa/AmEx/Discover
Outside of U.S. or in Texas
or for general information,
Call 1-713-524-6394